//求出0～100000之间的所有“水仙花数”并输出。
//“水仙花数”是指一个n位数，其各位数字的n次方之和确好等于该数本身，如:153＝1^3＋5^3＋3^3，则153是一个“水仙花数”。
#include <stdio.h>
#include <math.h>

int N(int i)//计算位数
{
    if(i)
    return (1 + N(i/10));
    else
    return 0;
}

int flower(int i, int n)//按规则计算
{
    if(i)
    return pow(i%10, n) + flower(i/10, n);
    else
    return 0;
}

int main()
{
    for(int i = 0; i <= 100000; i++)
    {
        if(i == flower(i, N(i)))
        {
            printf("%d ", i);
        }
    }
    return 0;
}